Tanenbaum model
Tanenbaumの『コンピュータ・ネットワーク』より
en: Computer Network
以下は上下が逆順なのに注意
5 layers:
物理層
en: physical layer
aka. layer 1
symbol
ほとんどが変調の話
bit ⇄ symbol
あとは伝送と多重化
提供するサービス
bit stream
over symbol stream
protocols
xDSL
CATV
SONET
LTE
aka. 4G
データ・リンク層
en: data link layer
aka. layer 2
frame
protocols
PPP
Ethernet
対向と じかに通信してる と見ると分かりやすい。 #peer
これは protocol 全般に言える話だ。
提供するサービス
パケットを受け付ける
frame stream
機能
ネットワーク層のパケットを受け付けるインターフェイス
bits into frames
フレーム分割が必要(後述)
伝送誤り対策
flow control
ここでも信頼性を ある程度 保証する。
下層
フレームを送信する
frame stream
bit stream を受信する
サービス class 3種
確認通知なし connectionless service
e.g. Ethernet
確認通知付き connectionless service
e.g. Wi-Fi
(確認通知付き)connection指向 service
e.g. 衛星通信、長距離電話回線
確認通知
ARQ のこと
フレーム分割方式
4 methods
byte数
byte詰め からの flag byte
e.g. PPP
bit詰め からの flag pattern
…違反
テクニック
byte stuffing & escaping
preamble
errors
bit flip
burst error
誤り制御
en: error control
フレーム分割
方式
byte数
errorに弱い
byte stuffing
flag byte
e.g. PPP
最悪+100%の増加
bit stuffing
e.g. HDLC
平均 1/8 = 12.5% の悪化
物理層を使う
coding violation
preamble
信頼性
テクニック
ARQなどの確認通知
タイマーからの再送
順序番号
en: sequence number
責務
結果的に exactly once を達成したい。重複排除は対向が やる。
フロー制御
rate-based flow control
minor
feedback-based flow control
上位層でも繰り返される。
誤り制御戦略
error-correcting code
ja: 誤り訂正符号
error-detecting code
ja: 誤り検出符号
aka. forward error correction = FEC
e.g. QUICwint.icon
error rate の spectrum ごとの戦略
低頻度: 誤り検出符号
e.g. 有線通信
高頻度: 誤り訂正符号
e.g. 無線通信
符号
parity bit
check sum
CRC
frame
構成要素4つ組
kind
seq
min = 1 bit
ack
e.g. ARQ, PAR
info
body(本体)相当
制御フレームなら、ないことも
frame header: kind, seq, ack
window
w: width
w = 1
minor
w > 1
ragular
prop.
MAX_SEQ_N + 1 = MAX_W
[n,n)、特に[0,0)なのは初期状態のときのみ。
[a,b) にて buffered n は n = b - a mod (MAX_SEQ_N+1)
w = 2×B+1
bandwidth-delay
副層
MAC
channel割り当て問題を処理してる。
cf. broadcast
LLC
複数のIEEE 802規格のMACを抽象化して隠蔽してる。
フレームのペイロードの抽象を暴いて、内部のパケットのプロトコルを峻別する。引き渡し。
ネットワーク層
cf. layer 3
packet
stream or datagram
routing
internetworking
これが主な仕事
テーブル更新プロセスがあると見なせる。
forwarding
ルーティングに従って実際にパケットを転送するプロセスだと言える。
現象
輻輳
en: congestion
fragmentation
MTU の調整が必要
protocols
IPv4
IPv6
ICMP
ICMPv6
ARP/NDP
DHCP
MPLS
abbt. of multi protocol label switching
主に ISP が内部的に使うらしい。
peering で使う?
connection-oriented
PPP < MPLS < IP
so-called layer 2.5
label
indexed
exact match
トランスポート層
en: transport layer
cf. layer 4
segment
stream or datagram
提供サービス
reliable byte stream
aka. reliable bit pipe
⊂ connection-oriented service
e.g. UNIX socket API
connectionless as well
e.g. datagram
or message stream
ref. Reliable byte stream - Wikipedia
protocol stack の核心部分
なので ここで 層を二分割する。
above/below
vs. data link layer
via channel vs network
TCP
XXX over TCP が また transport layer だと見ることも できる。
next gen
RFC 4960 → RFC 9260
SCTP
SST: Structured Stream Transport
ref. Structured Stream Transport
応用
クラサバ
RPC
UDP
XXX over UDP もトランスポート層だと思える。
e.g. RTP, QUIC
RTP
over UDP
アプリケーション層に実装されたトランスポート・プロトコル
by タネンバウム
QUIC
内部に TLS をも ふくむ。
TLS
ここに おける かも?
TLS over TPC も TLS over UDP も できる。
cf. DTLS
アプリケーション層
cf. OSI layer 5–7
5, 6 は不要だった。
e.g. HTTP, DNS
副層?wint.icon
このしたに LTS のレイヤーを置くこともある。
このしたに DTN の bundle layer を置くこともある。
対比
table:layer 2 to 4
# 誤り制御 フロー制御 輻輳制御
2 あり あり なし
3 なし* なし 部分的**
4 あり あり あり
* IPv6 の場合
** ルーターが輻輳の通知を出したり、 AS による traffic engineering によって迂回路を取れたり する。